﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Biciq.Logica;

using System.Globalization;
using Biciq.Datos;

namespace Biciq.Web.UI.Seguridades
{
    public partial class MantenimientoUsuario : System.Web.UI.Page
    {
        public Biciq.Datos.Usuario usuario { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.inicializar();
            }
        }
        private void inicializar()
        {
            this.cargarRoles();
            if (Request.QueryString["idUsuario"] == null)
            {
                operacion.Value = "Crear";
                usuario = new Biciq.Datos.Usuario();

            }
            else
            {
                operacion.Value = "Modificar";
                SeguridadServicio servicio = new SeguridadServicio();
                usuario = servicio.consultarUsuario(Guid.Parse(Request.QueryString["idUsuario"].ToString()));
                txtUsuario.Text = usuario.nombreUsuario;
                txtEmail.Text = usuario.email;
                cmbRol.SelectedValue = usuario.idRol.Value.ToString();
            }

            Session["UsuarioSistema"] = usuario;
        }

        private void cargarRoles()
        {
             CultureInfo cultura = (CultureInfo)Session["MyUICulture"];
            SeguridadServicio servicio = new SeguridadServicio();
           
                cmbRol.DataTextField = "nombre";
           
            cmbRol.DataSource = servicio.consultarRol("", cultura.Name);
            cmbRol.DataBind();

            ListItem itm = new ListItem("---Seleccione Rol de sistema--", "-1");
            cmbRol.Items.Insert(0, itm);

        }
        protected void btnCancelar_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("Usuarios.aspx");
        }

        protected void btnGuardar_Click(object sender, ImageClickEventArgs e)
        {
            usuario  = Session["UsuarioSistema"] as Biciq.Datos.Usuario;
            usuario.clave = Comun.encript(txtUsuario.Text);
            usuario.email = txtEmail.Text;
            usuario.estado = "ACT";
            usuario.idRol = Guid.Parse(cmbRol.SelectedValue);
            usuario.nombreUsuario = txtUsuario.Text;
            usuario.primerIngreso = true;
            

            Comun servicio = new Comun();
            Result result = new Result();
            if (operacion.Value == "Modificar")
            {
                result = servicio.modificarObjeto(usuario, "Usuarios");
            }
            else
            {
                result = servicio.crearObjeto(usuario, "Usuarios");
            }
            if (result.estado)
            {
                Session["UsuarioSistema"] = null;
                Response.Redirect("Usuarios.aspx");
            }
            else
            {
                WUCMensaje.MensajeError("Error al crear Usuario de Sistema: " + result.mensaje);
                MessagePopup.Show();
            }
        }
    }
}